home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib12.dsk / APPLE IRS.bas < prev    next >
BASIC Source File  |  2023-02-26  |  20KB  |  392 lines

  1. 1  REM  ***********************
  2. 2  REM  *     APPLE IRS       *
  3. 3  REM  * BY F. C. IRVING     *
  4. 4  REM  * COPYRIGHT (C) 1983  *
  5. 5  REM  * BY MICROSPARC, INC. *
  6. 6  REM  * LINCOLN, MA. 01773  *
  7. 7  REM  ***********************
  8. 10  REM 
  9. 12  ONERR  GOTO 10000
  10. 16 Z = 0:N = 0:NY = 0:TT = 0:ST = 0:E = 0:V = 0:F = 0:A = 0:YR = 0
  11. 17  HOME : VTAB 2: HTAB 16: PRINT "********": HTAB 16: PRINT "*APLIRS*": HTAB 16: PRINT "********": VTAB 24: PRINT "** COPYRIGHT 1983, MICROSPARC, INC **"
  12. 18  VTAB 8: PRINT "INCOME TAX ESTIMATION USING 1982 RATES": PRINT : PRINT "CURRENT SYSTEM USES SCHEDULES :": PRINT : PRINT "1040,A,B,D,E,TC AND INCOME AVERAGING": PRINT 
  13. 19  PRINT : PRINT "SEE ACCOMPANYING TEXT FOR DETAILS": VTAB 18: PRINT "FOR WHAT YEAR IS THIS ESTIMATE": PRINT : INPUT "USE THE FORM (XXXX) ";YR
  14. 20  HOME : VTAB 15: PRINT "OUTPUT TO PRINTER (P) OR SCREEN (S) ";: GET O$: PRINT O$: IF O$ = "S"  THEN N = 10: GOTO 26
  15. 22  IF O$ < >"P"  THEN  GOTO 20
  16. 24  PRINT : INPUT "HOW MANY INTERVALS IN RANGES PLEASE ";N
  17. 25  IF N <3  THEN N = 3
  18. 26  DIM Y(20),LT(21),X(N),W(N),I(N),D(N),SC(N),C(N),S(N),TI(N),NT(N),GT(N),EX(N),DD(N),TX(N),PT%(N),NI(N),CG(N)
  19. 27 PY = 5105850: REM  TOTAL OF PREVIOUS FOUR YEARS FOR INCOME AVERAGING THIS IS SET HIGH TO NEGATE AVERAGING TILL YOU PUT YOUR VALUE IN
  20. 28 SW(1) = 0: REM  SWITCH TO PRINT ONLY ONE LINE OF OUTPUT
  21. 30 SW(2) = 0: REM  SWITCH FOR FORMATING DISPLAY CHANGE
  22. 32 SW(3) = 0: REM  SWITCH FOR AVERAGING INCOME
  23. 34 SW(4) = 0: REM  SWITCH 2 FOR INCOME AVERAGING
  24. 38  GOTO 600
  25. 39  REM  *****SUBROUTINES*****
  26. 40 TT = 0: FOR Z = 1 TO NY:TT = TT +Y(Z): NEXT Z: RETURN 
  27. 42  VTAB 22: CALL  -868: HTAB 5: INVERSE : PRINT "ENTER NEW VALUE ";: NORMAL : INPUT B$
  28. 44  IF B$ = ""  THEN  RETURN 
  29. 46 Y(V) =  INT( VAL(B$)):Z = V:SW(2) = 1: GOSUB 51:SW(2) = 0: VTAB (7 +V): HTAB 29: CALL  -868: HTAB (35 -LT(V)): PRINT Y(V): RETURN 
  30. 50  FOR Z = 1 TO NY
  31. 51 S$ =  STR$(Y(Z))
  32. 52 LT(Z) =  LEN(S$)
  33. 53  IF SW(2) = 1  THEN  RETURN 
  34. 54  NEXT 
  35. 55 S$ =  STR$(TT)
  36. 56 LT(NY +1) =  LEN(S$): RETURN 
  37. 60  FOR Z = 1 TO N:X(Z) = 0: NEXT 
  38. 61  VTAB 20: HTAB 6: PRINT "(1=SINGLE VALUE 2=RANGE N=NO)"
  39. 62  VTAB 22: HTAB 5: PRINT "USE DIFFERENT VALUE? ";: GET A$: PRINT A$: IF A$ = "N" GOTO 84
  40. 63 A =  VAL(A$): IF A <1  OR A >2  THEN  GOTO 62
  41. 64  IF A = 2  THEN  GOTO 72
  42. 65  VTAB 20: INVERSE : PRINT "SINGLE VALUE";: NORMAL : PRINT "  U=USE RANGE  R=RESTART"
  43. 66  VTAB 22: CALL  -868: INVERSE : PRINT "ENTER ITEM # TO CHANGE (RET TO END) :";: NORMAL : GET V$: PRINT V$:V =  VAL(V$)
  44. 67  IF V$ = "U"  THEN A = 2: GOTO 64
  45. 68  IF V$ = "R"  THEN  POKE 34,0: RUN 
  46. 69  IF V >NY  THEN 66
  47. 70  IF V < = 0  AND V$ < > CHR$(13)  THEN  GOTO 64
  48. 71  IF V >0  THEN  GOSUB 42: GOSUB 40: GOSUB 55: VTAB (9 +NY): HTAB 28: CALL  -868: HTAB (35 -LT(NY +1)): PRINT TT: GOTO 66
  49. 72  IF A < >2  THEN  GOTO 84
  50. 73  VTAB 20: INVERSE : PRINT "RANGE";: NORMAL : PRINT "  U=USE SINGLE VALUE  R=RESTART "
  51. 74  VTAB 22: CALL  -868: INVERSE : PRINT "ENTER ITEM # TO CHANGE (RET TO END) :";: NORMAL : GET V$: PRINT V$:V =  VAL(V$)
  52. 75  IF V$ = "U"  THEN A = 1: GOTO 64
  53. 76  IF V$ = "R"  THEN  POKE 34,0: RUN 
  54. 77  IF V >NY  THEN 74
  55. 78  IF V < = 0  AND V$ < > CHR$(13)  THEN  GOTO 64
  56. 79  IF V >0  THEN  GOSUB 42: GOSUB 40: GOSUB 55: VTAB (9 +NY): HTAB 29: CALL  -868: HTAB (35 -LT(NY +1)): PRINT TT: GOTO 74
  57. 80  VTAB 22: CALL  -868: HTAB 5: INVERSE : PRINT "INCREMENT";: NORMAL : PRINT " ";: PRINT TT;: PRINT " ";: INVERSE : PRINT N;" TIMES BY ";: INPUT V$:V =  INT( VAL(V$))
  58. 81  IF V$ = "U"  THEN A = 1: GOTO 64
  59. 82  IF V$ = "R"  THEN  POKE 34,0: RUN 
  60. 83 X(1) = TT: FOR Z = 2 TO N:X(Z) = X(Z -1) +V: NEXT :SW(1) = 1: RETURN 
  61. 84 X(1) = TT: FOR Z = 2 TO N:X(Z) = X(1): NEXT : RETURN 
  62. 90  IF SC(Z) > = 0  THEN X(Z) = .5 *CG(Z): GOTO 93
  63. 91  IF C(Z) > = 0  THEN X(Z) = CG(Z): GOTO 93
  64. 92  IF C(Z) <0  AND SC(Z) <0  THEN X(Z) = SC(Z) +.5 *C(Z)
  65. 93  IF X(Z) < -3000  THEN X(Z) =  -3000
  66. 94  IF ST = 3  AND X(Z) < -1500  THEN X(Z) =  -1500
  67. 95 SC(Z) = X(Z):C(Z) = 0
  68. 96  RETURN 
  69. 100  REM  *****INCOME AVERAGING SUBROUTINE*****
  70. 105  POKE 34,0: HOME : VTAB 15: PRINT "WOULD YOU LIKE TO USE INCOME AVERAGING ";: GET A$: PRINT A$: IF A$ < >"Y"  THEN  RETURN 
  71. 110 PY = .3 *PY:Z = 0:NT(Z) = PY:SW(3) = 1: GOSUB 3160:SW(3) = 0:T = TX(Z)
  72. 115  DIM AI(N),IT(N),TE(N)
  73. 120  FOR Z = 1 TO N
  74. 125 AI(Z) = NT(Z) -PY
  75. 130 IT(Z) = .2 *AI(Z) +PY
  76. 135 TE(Z) = NT(Z)
  77. 140 NT(Z) = IT(Z)
  78. 145 SW(3) = 1: GOSUB 3160:SW(3) = 0
  79. 150 NT(Z) = TE(Z)
  80. 155 TE(Z) = TX(Z)
  81. 160 TX(Z) = 4 *(TE(Z) -T) +TE(Z)
  82. 165  NEXT Z
  83. 170 SW(4) = 1
  84. 175  RETURN 
  85. 200  REM  *****BLOCK 200-599 ROOM FOR ADDITIONAL SUBROUTINES*****
  86. 600  REM  *****MAIN PROGRAM BEGINS*****
  87. 602  HOME : PRINT : HTAB 14: INVERSE : PRINT "FILING STATUS": NORMAL 
  88. 604  PRINT 
  89. 606  HTAB 6: PRINT "1  SINGLE"
  90. 608  HTAB 6: PRINT "2  MARRIED - FILING JOINTLY"
  91. 610  HTAB 6: PRINT "3  MARRIED - FILING SEPARATELY"
  92. 612  HTAB 6: PRINT "4  QUALIFYING HOUSEHOLD HEAD"
  93. 614  HTAB 6: PRINT "5  QUALIFYING WIDOWER"
  94. 616  PRINT 
  95. 618  HTAB 6: PRINT "WHAT IS YOUR STATUS (#) : ";: GET ST$: PRINT ST$:ST =  VAL(ST$): IF ST <1  OR ST >5  THEN 600
  96. 620  PRINT 
  97. 622  HTAB 15: INVERSE : PRINT "EXEMPTIONS": NORMAL 
  98. 624  PRINT 
  99. 626  HTAB 6: PRINT "A  YOURSELF"
  100. 628  HTAB 6: PRINT "B  SPOUSE"
  101. 630  HTAB 6: PRINT "C  DEPENDENT CHILDREN"
  102. 632  HTAB 6: PRINT "D  OTHER DEPENDENTS"
  103. 634  HTAB 6: PRINT "E  BLIND (YOU OR SPOUSE)"
  104. 636  HTAB 6: PRINT "F  65 OR OVER (YOU OR SPOUSE)"
  105. 638  PRINT 
  106. 640  HTAB 6: PRINT "HOW MANY EXEMPTIONS HAVE YOU : ";: GET E$: PRINT E$:E =  VAL(E$): IF E <1  THEN  VTAB 12: GOTO 622
  107. 700  REM  *****WAGES*****
  108. 705  HOME : PRINT : HTAB 17: INVERSE : PRINT "INCOME";: NORMAL : HTAB 30: PRINT "SCHEDULE:"
  109. 710  PRINT : POKE 34,3
  110. 715 Y(1) = 9000:Y(2) = 0:Y(3) = 0:Y(4) = 0:NY = 4: GOSUB 40: GOSUB 50
  111. 720  HTAB 18: FLASH : PRINT "WAGE";: NORMAL : HTAB 36: PRINT "1040"
  112. 725  PRINT 
  113. 730  HTAB 12: PRINT "(CURRENT STATUS)"
  114. 735  VTAB 8: HTAB 6: PRINT "1. WAGES :";: HTAB (35 -LT(1)): PRINT Y(1)
  115. 740  HTAB 6: PRINT "2. SALARIES :";: HTAB (35 -LT(2)): PRINT Y(2)
  116. 745  HTAB 6: PRINT "3. TIPS :";: HTAB (35 -LT(3)): PRINT Y(3)
  117. 750  HTAB 6: PRINT "4. OTHER :";: HTAB (35 -LT(4)): PRINT Y(4)
  118. 755  PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(5)): PRINT TT
  119. 760  GOSUB 60:TT = 0
  120. 765  FOR Z = 1 TO N:W(Z) = X(Z): NEXT Z
  121. 800  REM  *****INTEREST INCOME*****
  122. 802  HOME 
  123. 804 Y(1) = 355:Y(2) = 123:Y(3) = 0:NY = 3: GOSUB 40: GOSUB 50
  124. 806  HTAB 16: FLASH : PRINT "INTEREST";: NORMAL : CALL  -868: HTAB 39: PRINT "B"
  125. 808  PRINT 
  126. 810  HTAB 12: PRINT "(CURRENT STATUS)"
  127. 812  PRINT 
  128. 814  HTAB 6: PRINT "1. BANK # 1 :";: HTAB (35 -LT(1)): PRINT Y(1)
  129. 816  HTAB 6: PRINT "2. BANK # 2 :";: HTAB (35 -LT(2)): PRINT Y(2)
  130. 818  HTAB 6: PRINT "3. OTHER :";: HTAB (35 -LT(3)): PRINT Y(3)
  131. 842  PRINT 
  132. 844  HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
  133. 846  PRINT : GOSUB 60:TT = 0
  134. 848  FOR Z = 1 TO N:I(Z) = X(Z): NEXT Z
  135. 850  REM  *****DIVIDEND INCOME*****
  136. 852  HOME 
  137. 854 Y(1) = 32:Y(2) = 130:Y(3) = 87:Y(4) = 86:Y(5) = 110:Y(6) = 0:Y(7) = 0:Y(8) = 0:NY = 8: GOSUB 40: GOSUB 50
  138. 856  HTAB 16: FLASH : PRINT "DIVIDEND";: NORMAL : HTAB 39: PRINT "B"
  139. 858  PRINT 
  140. 860  HTAB 12: PRINT "(CURRENT STATUS)"
  141. 862  PRINT 
  142. 864  HTAB 6: PRINT "1. STOCK #1 :";: HTAB (35 -LT(1)): PRINT Y(1)
  143. 866  HTAB 6: PRINT "2. STOCK #2 :";: HTAB (35 -LT(2)): PRINT Y(2)
  144. 868  HTAB 6: PRINT "3. STOCK #3 :";: HTAB (35 -LT(3)): PRINT Y(3)
  145. 870  HTAB 6: PRINT "4. STOCK #4 :";: HTAB (35 -LT(4)): PRINT Y(4)
  146. 872  HTAB 6: PRINT "5. STOCK #5 :";: HTAB (35 -LT(5)): PRINT Y(5)
  147. 874  HTAB 6: PRINT "6. STOCK #6 :";: HTAB (35 -LT(6)): PRINT Y(6)
  148. 876  HTAB 6: PRINT "7. STOCK #7 :";: HTAB (35 -LT(7)): PRINT Y(7)
  149. 878  HTAB 6: PRINT "8. OTHER :";: HTAB (35 -LT(8)): PRINT Y(8)
  150. 892  PRINT 
  151. 894  HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
  152. 896  PRINT : GOSUB 60:TT = 0
  153. 898  FOR Z = 1 TO N:D(Z) = X(Z): NEXT Z
  154. 900  REM  *****LINES 900-999 FOR LINE 9*****
  155. 1000  REM  *****LINES 1000-1099 FOR LINE 10*****
  156. 1100  REM  *****LINES 1100-1199 FOR LINE 11*****
  157. 1200  REM  *****CAPITAL GAINS*****
  158. 1203  HOME 
  159. 1206 Y(1) = 0:Y(2) = 0:NY = 2: GOSUB 40: GOSUB 50
  160. 1209  HTAB 9: FLASH : PRINT "SHORT TERM CAPITAL GAIN";: NORMAL : HTAB 39: PRINT "D"
  161. 1212  PRINT 
  162. 1215  HTAB 12: PRINT "(CURRENT STATUS)"
  163. 1218  PRINT 
  164. 1221  HTAB 6: PRINT "1. SALE OF STOCK :";: HTAB (35 -LT(1)): PRINT Y(1)
  165. 1224  HTAB 6: PRINT "2. OTHER :";: HTAB (35 -LT(2)): PRINT Y(2)
  166. 1227  PRINT 
  167. 1230  HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
  168. 1233  PRINT : GOSUB 60:TT = 0
  169. 1236  FOR Z = 1 TO N:SC(Z) = X(Z): NEXT Z
  170. 1239  REM  *****LONG TERM*****
  171. 1242  HOME 
  172. 1245  HTAB 9: FLASH : PRINT "LONG TERM CAPITAL GAIN";: NORMAL : HTAB 39: PRINT "D": PRINT 
  173. 1248  HTAB 12: PRINT "(CURRENT STATUS)": PRINT 
  174. 1251 Y(1) = 0:Y(2) = 465:Y(3) = 0:Y(4) = 0:NY = 4: GOSUB 40: GOSUB 50
  175. 1254  HTAB 6: PRINT "1. SALE OF HOUSE :";: HTAB (35 -LT(1)): PRINT Y(1)
  176. 1257  HTAB 6: PRINT "2. SALE OF STOCKS :";: HTAB (35 -LT(2)): PRINT Y(2)
  177. 1260  HTAB 6: PRINT "2. DISTRIBUTIONS :";: HTAB (35 -LT(3)): PRINT Y(3)
  178. 1263  HTAB 6: PRINT "4. OTHER :";: HTAB (35 -LT(4)): PRINT Y(4)
  179. 1266  PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
  180. 1269  GOSUB 60:TT = 0
  181. 1272  FOR Z = 1 TO N:C(Z) = X(Z): NEXT Z
  182. 1275  FOR Z = 1 TO N:CG(Z) = C(Z) +SC(Z): NEXT Z
  183. 1278  FOR Z = 1 TO N
  184. 1281  IF CG(Z) <0  THEN  GOSUB 90
  185. 1284  NEXT Z
  186. 1300  REM  *****LINES 1300-1399 FOR LINE 13*****
  187. 1400  REM  *****LINES 1400-1499 FOR LINE 14*****
  188. 1500  REM  *****LINES 1500-1599 FOR LINE 15*****
  189. 1600  REM  *****LINES 1600-1699 FOR LINE 16*****
  190. 1700  REM  *****SUPPLEMENTAL INCOME*****
  191. 1705  HOME 
  192. 1710 Y(1) = 1051:Y(2) = 2575:Y(3) = 0:NY = 3: GOSUB 40: GOSUB 50
  193. 1715  HTAB 14: FLASH : PRINT "SUPPLEMENTAL";: NORMAL : HTAB 39: PRINT "E"
  194. 1720  PRINT 
  195. 1725  HTAB 12: PRINT "(CURRENT STATUS)"
  196. 1730  PRINT 
  197. 1735  HTAB 6: PRINT "1. ROYALTIES :";: HTAB (35 -LT(1)): PRINT Y(1)
  198. 1740  HTAB 6: PRINT "2. RENTS :";: HTAB (35 -LT(2)): PRINT Y(2)
  199. 1745  HTAB 6: PRINT "3. OTHER :";: HTAB (35 -LT(3)): PRINT Y(3)
  200. 1750  PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
  201. 1755  GOSUB 60:TT = 0
  202. 1760  FOR Z = 1 TO N:S(Z) = X(Z): NEXT Z
  203. 1800  REM  *****LINES 1800-1899 FOR LINE 18*****
  204. 1900  REM  *****LINES 1900-1999 FOR LINE 19*****
  205. 2000  REM  *****LINES 2000-2099 FOR LINE 20*****
  206. 2200  REM  *****BLOCK 2200-2900 FOR LINES 22-29*****
  207. 3000  REM  *****DEDUCTIONS*****
  208. 3002  HOME 
  209. 3006 NY = 8: FOR Z = 1 TO NY:Y(Z) = 0: NEXT : GOSUB 40: GOSUB 50
  210. 3008  HTAB 15: FLASH : PRINT "DEDUCTIONS";: NORMAL : HTAB 39: PRINT "A"
  211. 3010  PRINT 
  212. 3012  HTAB 12: PRINT "(CURRENT STATUS)"
  213. 3014  PRINT 
  214. 3016  HTAB 2: PRINT "1. MEDICAL EXPENSES :";: HTAB (35 -LT(1)): PRINT Y(1)
  215. 3018  HTAB 2: PRINT "2. STATE AND LOCAL TAXES :";: HTAB (35 -LT(2)): PRINT Y(2)
  216. 3020  HTAB 2: PRINT "3. REAL ESTATE TAXES :";: HTAB (35 -LT(3)): PRINT Y(3)
  217. 3022  HTAB 2: PRINT "4. GENERAL SALES TAX :";: HTAB (35 -LT(4)): PRINT Y(4)
  218. 3024  HTAB 2: PRINT "5. PERSONAL PROPERTY TAX: ";: HTAB (35 -LT(5)): PRINT Y(5)
  219. 3026  HTAB 2: PRINT "6. INTEREST EXPENSE :";: HTAB (35 -LT(6)): PRINT Y(6)
  220. 3028  HTAB 2: PRINT "7. CONTRIBUTIONS :";: HTAB (35 -LT(7)): PRINT Y(7)
  221. 3029  HTAB 2: PRINT "8. MISCELLANEOUS :";: HTAB (35 -LT(8)): PRINT Y(8)
  222. 3030  PRINT : HTAB 9: PRINT "TOTAL DEDUCTIONS :";: HTAB 32: PRINT "STD"
  223. 3032  GOSUB 60:TT = 0
  224. 3034  IF X(N) = 0  THEN 3046
  225. 3036  FOR Z = 1 TO N: IF ST = 1  OR ST = 4  THEN X(Z) = X(Z) -2300
  226. 3038  IF ST = 2  OR ST = 5  THEN X(Z) = X(Z) -3400
  227. 3040  IF ST = 3  THEN X(Z) = X(Z) -1700
  228. 3042  IF X(Z) <0  THEN X(Z) = 0
  229. 3044  NEXT Z
  230. 3046  IF X(N) = 0  THEN DD(1) = X(1): FOR Z = 2 TO N:DD(Z) = X(1): NEXT Z: GOTO 3100
  231. 3048  FOR Z = 1 TO N:DD(Z) = X(Z): NEXT Z
  232. 3100  REM  *****TAX COMPUTATION*****
  233. 3102  FOR Z = 1 TO N
  234. 3104  IF ST = 2  AND D(Z) +I(Z) > = 400  THEN EX(Z) = 400: GOTO 3108
  235. 3105  IF ST = 2  AND D(Z) +I(Z) >200  THEN EX(Z) = D(Z) +I(Z): GOTO 3108
  236. 3106  IF D(Z) +I(Z) > = 200  THEN EX(Z) = 200: GOTO 3108
  237. 3107 EX(Z) = D(Z) +I(Z)
  238. 3108  NEXT Z
  239. 3110  FOR Z = 1 TO N:TI(Z) = W(Z) +SC(Z) +I(Z) +D(Z) -EX(Z) +.4 *(C(Z)) +S(Z):GT(Z) = W(Z) +I(Z) +D(Z) +CG(Z) +S(Z)
  240. 3115 TI(Z) =  INT(TI(Z)):GT(Z) =  INT(GT(Z))
  241. 3120  NEXT Z
  242. 3125 F = 1000 *E
  243. 3130  FOR Z = 1 TO N:NT(Z) = TI(Z) -F -DD(Z)
  244. 3135  IF ST = 1  OR ST = 4  THEN DD(Z) = DD(Z) +2300: REM  RE-ESTABLISHES DEDUCTIONS FOR PRINTOUT
  245. 3140  IF ST = 2  OR ST = 5  THEN DD(Z) = DD(Z) +3400
  246. 3145  IF ST = 3  THEN DD(Z) = DD(Z) +1700
  247. 3150  NEXT Z
  248. 3155  IF (TI(1) -.3 *PY) >3000  THEN  GOSUB 105: IF TX(1) >0  THEN  GOTO 8000
  249. 3160  IF ST = 1  THEN  GOTO 3200
  250. 3165  IF ST = 2  THEN  GOTO 3300
  251. 3175  IF ST = 3  THEN  GOTO 3400
  252. 3180  IF ST = 4  THEN  GOTO 3500
  253. 3185  IF ST = 5  THEN  GOTO 3300
  254. 3199  REM  *****TAX SCHEDULE FOR SINGLE TAXPAYER*****
  255. 3200  IF SW(3) = 1  THEN  GOTO 3204
  256. 3202  FOR Z = 1 TO N
  257. 3204  IF NT(Z) < = 2300  THEN TX(Z) = 0: GOTO 3238
  258. 3206  IF NT(Z) < = 3400  THEN TX(Z) =  INT(.12 *(NT(Z) -2300)): GOTO 3238
  259. 3208  IF NT(Z) < = 4400  THEN TX(Z) =  INT(132 +.14 *(NT(Z) -3400)): GOTO 3238
  260. 3210  IF NT(Z) < = 6500  THEN TX(Z) =  INT(272 +.16 *(NT(Z) -4400)): GOTO 3238
  261. 3212  IF NT(Z) < = 8500  THEN TX(Z) =  INT(608 +.17 *(NT(Z) -6500)): GOTO 3238
  262. 3214  IF NT(Z) < = 10800  THEN TX(Z) =  INT(948 +.19 *(NT(Z) -8500)): GOTO 3238
  263. 3216  IF NT(Z) < = 12900  THEN TX(Z) =  INT(1385 +.22 *(NT(Z) -10800)): GOTO 3238
  264. 3218  IF NT(Z) < = 15000  THEN TX(Z) =  INT(1847 +.23 *(NT(Z) -12900)): GOTO 3238
  265. 3220  IF NT(Z) < = 18200  THEN TX(Z) =  INT(2330 +.27 *(NT(Z) -15000)): GOTO 3238
  266. 3222  IF NT(Z) < = 23500  THEN TX(Z) =  INT(3194 +.31 *(NT(Z) -18200)): GOTO 3238
  267. 3224  IF NT(Z) < = 28800  THEN TX(Z) =  INT(4837 +.35 *(NT(Z) -23500)): GOTO 3238
  268. 3226  IF NT(Z) < = 34100  THEN TX(Z) =  INT(6692 +.40 *(NT(Z) -28800)): GOTO 3238
  269. 3228  IF NT(Z) < = 41500  THEN TX(Z) =  INT(8812 +.44 *(NT(Z) -31400)): GOTO 3238
  270. 3230  IF NT(Z) >41500  THEN TX(Z) =  INT(12068 +.50 *(NT(Z) -41500)): GOTO 3238
  271. 3238  IF SW(3) = 1  THEN  RETURN 
  272. 3240  NEXT Z: GOTO 8000
  273. 3299  REM  *****TAX SCHEDULE FOR MARRIEDS FILING JOINTLY*****
  274. 3300  IF SW(3) = 1  THEN  GOTO 3304
  275. 3302  FOR Z = 1 TO N
  276. 3304  IF NT(Z) < = 3400  THEN TX(Z) = 0: GOTO 3338
  277. 3306  IF NT(Z) < = 5500  THEN TX(Z) =  INT(.12 *(NT(Z) -3400)): GOTO 3338
  278. 3308  IF NT(Z) < = 7600  THEN TX(Z) =  INT(252 +.14 *(NT(Z) -5500)): GOTO 3338
  279. 3310  IF NT(Z) < = 11900  THEN TX(Z) =  INT(546 +.16 *(NT(Z) -7600)): GOTO 3338
  280. 3312  IF NT(Z) < = 16000  THEN TX(Z) =  INT(1234 +.19 *(NT(Z) -11900)): GOTO 3338
  281. 3314  IF NT(Z) < = 20200  THEN TX(Z) =  INT(2013 +.22 *(NT(Z) -16000)): GOTO 3338
  282. 3316  IF NT(Z) < = 24600  THEN TX(Z) =  INT(2937 +.25 *(NT(Z) -20200)): GOTO 3338
  283. 3318  IF NT(Z) < = 29900  THEN TX(Z) =  INT(4037 +.29 *(NT(Z) -24600)): GOTO 3338
  284. 3320  IF NT(Z) < = 35200  THEN TX(Z) =  INT(5574 +.33 *(NT(Z) -29900)): GOTO 3338
  285. 3322  IF NT(Z) < = 45800  THEN TX(Z) =  INT(7323 +.39 *(NT(Z) -35200)): GOTO 3338
  286. 3324  IF NT(Z) < = 60000  THEN TX(Z) =  INT(11457 +.44 *(NT(Z) -45800)): GOTO 3338
  287. 3326  IF NT(Z) < = 85600  THEN TX(Z) =  INT(17705 +.49 *(NT(Z) -60000)): GOTO 3338
  288. 3328  IF NT(Z) >85600  THEN TX(Z) =  INT(30249 +.50 *(NT(Z) -85600)): GOTO 3338
  289. 3338  IF SW(3) = 1  THEN  RETURN 
  290. 3340  NEXT Z: GOTO 8000
  291. 3399  REM  *****TAX SCHEDULE FOR MARRIEDS FILING SEPARATELY*****
  292. 3400  IF SW(3) = 1  THEN  GOTO 3404
  293. 3402  FOR Z = 1 TO N
  294. 3404  IF NT(Z) < = 1700  THEN TX(Z) = 0: GOTO 3438
  295. 3406  IF NT(Z) < = 2750  THEN TX(Z) =  INT(.12 *(NT(Z) -1700)): GOTO 3438
  296. 3408  IF NT(Z) < = 3800  THEN TX(Z) =  INT(126 +.14 *(NT(Z) -2750)): GOTO 3438
  297. 3410  IF NT(Z) < = 5950  THEN TX(Z) =  INT(273 +.16 *(NT(Z) -3800)): GOTO 3438
  298. 3412  IF NT(Z) < = 8000  THEN TX(Z) =  INT(617 +.19 *(NT(Z) -5950)): GOTO 3438
  299. 3414  IF NT(Z) < = 10100  THEN TX(Z) =  INT(1006 +.22 *(NT(Z) -8000)): GOTO 3438
  300. 3416  IF NT(Z) < = 12300  THEN TX(Z) =  INT(1468 +.25 *(NT(Z) -10100)): GOTO 3438
  301. 3418  IF NT(Z) < = 14950  THEN TX(Z) =  INT(2018 +.29 *(NT(Z) -12300)): GOTO 3438
  302. 3420  IF NT(Z) < = 17600  THEN TX(Z) =  INT(2787 +.33 *(NT(Z) -14950)): GOTO 3438
  303. 3422  IF NT(Z) < = 22900  THEN TX(Z) =  INT(3661 +.39 *(NT(Z) -17600)): GOTO 3438
  304. 3424  IF NT(Z) < = 30000  THEN TX(Z) =  INT(5728 +.44 *(NT(Z) -22900)): GOTO 3438
  305. 3426  IF NT(Z) < = 42800  THEN TX(Z) =  INT(8852 +.49 *(NT(Z) -30000)): GOTO 3438
  306. 3428  IF NT(Z) >42800  THEN TX(Z) =  INT(15124 +.50 *(NT(Z) -42800)): GOTO 3438
  307. 3438  IF SW(3) = 1  THEN  RETURN 
  308. 3440  NEXT Z: GOTO 8000
  309. 3499  REM  *****TAX SCHEDULE FOR HEAD OF HOUSEHOLD*****
  310. 3500  IF SW(3) = 1  THEN  GOTO 3204
  311. 3502  FOR Z = 1 TO N
  312. 3504  IF NT(Z) < = 2300  THEN TX(Z) = 0: GOTO 3538
  313. 3506  IF NT(Z) < = 4400  THEN TX(Z) =  INT(.12 *(NT(Z) -2300)): GOTO 3538
  314. 3508  IF NT(Z) < = 6500  THEN TX(Z) =  INT(252 +.14 *(NT(Z) -4400)): GOTO 3538
  315. 3510  IF NT(Z) < = 8700  THEN TX(Z) =  INT(546 +.16 *(NT(Z) -6500)): GOTO 3538
  316. 3512  IF NT(Z) < = 11800  THEN TX(Z) =  INT(898 +.20 *(NT(Z) -8700)): GOTO 3538
  317. 3514  IF NT(Z) < = 15000  THEN TX(Z) =  INT(1518 +.22 *(NT(Z) -11800)): GOTO 3538
  318. 3516  IF NT(Z) < = 18200  THEN TX(Z) =  INT(2222 +.23 *(NT(Z) -15000)): GOTO 3538
  319. 3518  IF NT(Z) < = 23500  THEN TX(Z) =  INT(2958 +.28 *(NT(Z) -18200)): GOTO 3538
  320. 3520  IF NT(Z) < = 28800  THEN TX(Z) =  INT(4442 +.32 *(NT(Z) -23500)): GOTO 3538
  321. 3522  IF NT(Z) < = 34100  THEN TX(Z) =  INT(6138 +.38 *(NT(Z) -28800)): GOTO 3538
  322. 3524  IF NT(Z) < = 44700  THEN TX(Z) =  INT(8152 +.41 *(NT(Z) -34100)): GOTO 3538
  323. 3526  IF NT(Z) < = 60600  THEN TX(Z) =  INT(12498 +.49 *(NT(Z) -44700)): GOTO 3538
  324. 3528  IF NT(Z) >60600  THEN TX(Z) =  INT(20289 +.50 *(NT(Z) -60600)): GOTO 3538
  325. 3538  IF SW(3) = 1  THEN  RETURN 
  326. 3540  NEXT Z: GOTO 8000
  327. 3600  REM  *****LINES 3600-3699 FOR LINE 36*****
  328. 3800  REM  *****BLOCK 3800-4600 FOR CREDITS LINES 38-46 ON 1040*****
  329. 4800  REM  *****BLOCK 4800-5300 FOR OTHER TAXES LINES 48-53 ON 1040*****
  330. 8000  REM  *****FINAL TABLE SETUP*****
  331. 8005  FOR Z = 1 TO N
  332. 8010 PT%(Z) = (TX(Z)/TI(Z)) *100
  333. 8015 NI(Z) = GT(Z) -TX(Z)
  334. 8020  NEXT Z
  335. 8025  IF ST = 1  THEN ST$ = " S"
  336. 8030  IF ST = 2  THEN ST$ = "MJ"
  337. 8035  IF ST = 3  THEN ST$ = "MS"
  338. 8100  REM  *****PRINTOUT*****
  339. 8103  POKE 34,0: HOME 
  340. 8105  IF O$ = "P"  THEN  GOTO 8200
  341. 8110  INVERSE : PRINT "          FEDERAL INCOME TAX           ": FOR Z = 1 TO 38: PRINT " ";: NEXT Z: PRINT " "
  342. 8113  PRINT " ESTIMATE FOR ";YR;" BASED ON 1982 RATES ": FOR Z = 1 TO 38: PRINT " ";: NEXT Z: PRINT " "
  343. 8114  NORMAL 
  344. 8115  VTAB 5: HTAB 1: INVERSE : PRINT "FS E    GROSS   DED.    TAX   %    NET "
  345. 8120  NORMAL : PRINT 
  346. 8125  FOR Z = 1 TO N
  347. 8130  PRINT ST$;
  348. 8135  HTAB 4: PRINT E;
  349. 8140 S$ =  STR$(GT(Z)): HTAB (14 - LEN(S$)): PRINT GT(Z);
  350. 8145 S$ =  STR$(DD(Z)): HTAB (21 - LEN(S$)): PRINT DD(Z);
  351. 8150 S$ =  STR$(TX(Z)): HTAB (28 - LEN(S$)): PRINT TX(Z);
  352. 8155 S$ =  STR$(PT%(Z)): HTAB (32 - LEN(S$)): PRINT PT%(Z);
  353. 8160 S$ =  STR$(NI(Z)): HTAB (40 - LEN(S$)): PRINT NI(Z);
  354. 8165  IF SW(1) = 0  THEN Z = N
  355. 8170  NEXT 
  356. 8175  IF SW(4) = 1  THEN  PRINT : HTAB 10: PRINT "USED INCOME AVERAGING"
  357. 8180  PRINT : PRINT : PRINT 
  358. 8185  HTAB 6: INVERSE : PRINT "WOULD YOU LIKE TO GO AGAIN ?";: NORMAL : GET A$
  359. 8190  IF A$ = "Y"  THEN  CLEAR : GOTO 1
  360. 8195  END 
  361. 8200  REM  PRINTER PRINTOUT
  362. 8205  PR# 1
  363. 8210  PRINT  CHR$(9) +"130N";: PRINT  CHR$(15);: REM  PRINTER CONTROLS
  364. 8215  PRINT  TAB( 60)"FEDERAL INCOME TAX": PRINT 
  365. 8220  PRINT  TAB( 51)"ESTIMATE FOR ";YR;" BASED ON 1982 RATES"
  366. 8225  PRINT 
  367. 8230  HTAB 15: PRINT "FS   E";: PRINT  TAB( 6)"WAGE      INT";: PRINT  TAB( 7)"DIV       CG";: PRINT  TAB( 8)"SI       GROSS";: PRINT  TAB( 7)"TXBLE       DED";: PRINT  TAB( 8)"TAX      %";: PRINT  TAB( 9)"NET"
  368. 8235  FOR Z = 1 TO N
  369. 8240  HTAB 15: PRINT ST$;"   ";E;
  370. 8245 S$ =  STR$(W(Z)): PRINT  TAB( 10 - LEN(S$))W(Z);
  371. 8250 S$ =  STR$(I(Z)): PRINT  TAB( 10 - LEN(S$))I(Z);
  372. 8255 S$ =  STR$(D(Z)): PRINT  TAB( 10 - LEN(S$))D(Z);
  373. 8260 S$ =  STR$(CG(Z)): PRINT  TAB( 11 - LEN(S$))CG(Z);
  374. 8265 S$ =  STR$(S(Z)): PRINT  TAB( 10 - LEN(S$))S(Z);
  375. 8270 S$ =  STR$(GT(Z)): PRINT  TAB( 12 - LEN(S$))GT(Z);
  376. 8275 S$ =  STR$(TI(Z)): PRINT  TAB( 12 - LEN(S$))TI(Z);
  377. 8280 S$ =  STR$(DD(Z)): PRINT  TAB( 10 - LEN(S$))DD(Z);
  378. 8285 S$ =  STR$(TX(Z)): PRINT  TAB( 11 - LEN(S$))TX(Z);
  379. 8290 S$ =  STR$(PT%(Z)): PRINT  TAB( 8 - LEN(S$))PT%(Z);"%";
  380. 8295 S$ =  STR$(NI(Z)): PRINT  TAB( 12 - LEN(S$))NI(Z)
  381. 8297  IF SW(1) = 0  THEN Z = N
  382. 8300  NEXT Z
  383. 8305  IF SW(4) = 1  THEN  PRINT : PRINT  TAB( 59)"USED INCOME AVERAGING"
  384. 8310  PRINT  CHR$(18);: PRINT  CHR$(9) +"40N";: REM  PRINTER CONTROLS
  385. 8320  PR# 0: GOTO 8175
  386. 10000  REM  *****ERROR ROUTINE*****
  387. 10010  PRINT  CHR$(9) +"40N"
  388. 10020  NORMAL : TEXT : HOME 
  389. 10030  PRINT "YOU HAVE ENCOUNTERED ERROR # "; PEEK(222)
  390. 10040  PRINT : PRINT "IN LINE # "; PEEK(218) + PEEK(219) *256;"."
  391. 10050  PRINT : PRINT "SEE PAGE 136 IN APPLESOFT MANUAL.": PRINT 
  392. 10060  END